This relates to communication networks, and more particularly, to communications networks having network switches that are controlled by a controller.
Packet-based networks such as the internet and local data networks that are connected to the internet include network switches. Network switches are used in forwarding packets from packet sources to packet destinations. The packets may be sometimes referred to as frames.
It can be difficult or impossible to control the switches of one vendor using the equipment of another vendor. This is because the switch equipment of one vendor may use a different operating system and set of control procedures than the switch equipment of another vendor. To address the challenges associated with controlling different types of switch platforms, cross-platform protocols have been developed. These protocols allow centralized control of otherwise incompatible switches.
Cross-platform controller clients can be included on the switches in a network. The controller clients are able to communicate with a corresponding controller server over network paths. Because the controller clients can be implemented on a variety of switch hardware, it is possible for a single controller to control switch equipment that might otherwise be incompatible.
A network may include switches having controller clients that are controlled by a controller (client switches) and non-client switches that are not controlled by the controller. Some of the non-client switches may be interposed between client switches. The controller may direct the client switches to forward network packets along network forwarding paths through the network. It may be difficult for the controller for the controller to determine appropriate network forwarding paths in networks that include non-client switches. For example, a group of intervening non-client switches may separate groups of client switches. In this scenario, the group of non-client switches may be connected to groups of client switches at multiple network locations, potentially resulting in forwarding loops between the client switches and non-client switches.